_s_i_z_e Specifies the number of coordinates per vertex; must be 2, 3, or
4. The initial value is 4.
_t_y_p_e Specifies the data type of each coordinate in the array.
Symbolic constants GGGGLLLL____SSSSHHHHOOOORRRRTTTT, GGGGLLLL____IIIINNNNTTTT, GGGGLLLL____FFFFLLLLOOOOAAAATTTT, and GGGGLLLL____DDDDOOOOUUUUBBBBLLLLEEEE are
accepted. The initial value is GGGGLLLL____FFFFLLLLOOOOAAAATTTT.
_s_t_r_i_d_e Specifies the byte offset between consecutive vertexes. If
_s_t_r_i_d_e is 0, the vertexes are understood to be tightly packed in
the array. The initial value is 0.
_p_o_i_n_t_e_r Specifies a pointer to the first coordinate of the first vertex
in the array. The initial value is 0.
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
ffffggggllllVVVVeeeerrrrtttteeeexxxxPPPPooooiiiinnnntttteeeerrrr specifies the location and data format of an array of
vertex coordinates to use when rendering. _s_i_z_e specifies the number of
coordinates per vertex and _t_y_p_e the data type of the coordinates. _s_t_r_i_d_e
specifies the byte stride from one vertex to the next allowing vertexes
and attributes to be packed into a single array or stored in separate
arrays. (Single-array storage may be more efficient on some
implementations; see ffffggggllllIIIInnnntttteeeerrrrlllleeeeaaaavvvveeeeddddAAAArrrrrrrraaaayyyyssss.) When a vertex array is
specified, _s_i_z_e, _t_y_p_e, _s_t_r_i_d_e, and _p_o_i_n_t_e_r are saved as client-side
state.
To enable and disable the vertex array, call ffffggggllllEEEEnnnnaaaabbbblllleeeeCCCClllliiiieeeennnnttttSSSSttttaaaatttteeee and
ffffggggllllDDDDiiiissssaaaabbbblllleeeeCCCClllliiiieeeennnnttttSSSSttttaaaatttteeee with the argument GGGGLLLL____VVVVEEEERRRRTTTTEEEEXXXX____AAAARRRRRRRRAAAAYYYY. If enabled, the
vertex array is used when ffffggggllllDDDDrrrraaaawwwwAAAArrrrrrrraaaayyyyssss, ffffggggllllDDDDrrrraaaawwwwEEEElllleeeemmmmeeeennnnttttssss, or
ffffggggllllAAAArrrrrrrraaaayyyyEEEElllleeeemmmmeeeennnntttt is called.
Use ffffggggllllDDDDrrrraaaawwwwAAAArrrrrrrraaaayyyyssss to construct a sequence of primitives (all of the same
type) from prespecified vertex and vertex attribute arrays. Use
ffffggggllllAAAArrrrrrrraaaayyyyEEEElllleeeemmmmeeeennnntttt to specify primitives by indexing vertexes and vertex
attributes and ffffggggllllDDDDrrrraaaawwwwEEEElllleeeemmmmeeeennnnttttssss to construct a sequence of primitives by
indexing vertexes and vertex attributes.
NNNNOOOOTTTTEEEESSSS
ffffggggllllVVVVeeeerrrrtttteeeexxxxPPPPooooiiiinnnntttteeeerrrr is available only if the GL version is 1.1 or greater.
The vertex array is initially disabled and isn't accessed when
ffffggggllllAAAArrrrrrrraaaayyyyEEEElllleeeemmmmeeeennnntttt, ffffggggllllDDDDrrrraaaawwwwEEEElllleeeemmmmeeeennnnttttssss or ffffggggllllDDDDrrrraaaawwwwAAAArrrrrrrraaaayyyyssss is called.
Execution of ffffggggllllVVVVeeeerrrrtttteeeexxxxPPPPooooiiiinnnntttteeeerrrr is not allowed between the execution of
ffffggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of ffffggggllllEEEEnnnndddd, but an error may or
may not be generated. If no error is generated, the operation is
undefined.
ffffggggllllVVVVeeeerrrrtttteeeexxxxPPPPooooiiiinnnntttteeeerrrr is typically implemented on the client side.
Vertex array parameters are client-side state and are therefore not saved
or restored by ffffggggllllPPPPuuuusssshhhhAAAAttttttttrrrriiiibbbb and ffffggggllllPPPPooooppppAAAAttttttttrrrriiiibbbb. Use ffffggggllllPPPPuuuusssshhhhCCCClllliiiieeeennnnttttAAAAttttttttrrrriiiibbbb
and ffffggggllllPPPPooooppppCCCClllliiiieeeennnnttttAAAAttttttttrrrriiiibbbb instead.
EEEERRRRRRRROOOORRRRSSSS
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____VVVVAAAALLLLUUUUEEEE is generated if _s_i_z_e is not 2, 3, or 4.
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM is generated if _t_y_p_e is is not an accepted value.
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____VVVVAAAALLLLUUUUEEEE is generated if _s_t_r_i_d_e is negative.
ffffggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd with argument GGGGLLLL____VVVVEEEERRRRTTTTEEEEXXXX____AAAARRRRRRRRAAAAYYYY
ffffggggllllGGGGeeeetttt with argument GGGGLLLL____VVVVEEEERRRRTTTTEEEEXXXX____AAAARRRRRRRRAAAAYYYY____SSSSIIIIZZZZEEEE
ffffggggllllGGGGeeeetttt with argument GGGGLLLL____VVVVEEEERRRRTTTTEEEEXXXX____AAAARRRRRRRRAAAAYYYY____TTTTYYYYPPPPEEEE
ffffggggllllGGGGeeeetttt with argument GGGGLLLL____VVVVEEEERRRRTTTTEEEEXXXX____AAAARRRRRRRRAAAAYYYY____SSSSTTTTRRRRIIIIDDDDEEEE
ffffggggllllGGGGeeeettttPPPPooooiiiinnnntttteeeerrrrvvvv with argument GGGGLLLL____VVVVEEEERRRRTTTTEEEEXXXX____AAAARRRRRRRRAAAAYYYY____PPPPOOOOIIIINNNNTTTTEEEERRRR
GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____CCCCOOOOOOOORRRRDDDD____AAAARRRRRRRRAAAAYYYY____EEEEXXXXTTTT, GGGGLLLL____EEEEDDDDGGGGEEEE____FFFFLLLLAAAAGGGG____AAAARRRRRRRRAAAAYYYY or GGGGLLLL____EEEEDDDDGGGGEEEE____FFFFLLLLAAAAGGGG____AAAARRRRRRRRAAAAYYYY____EEEEXXXXTTTT
between a call to ffffggggllllNNNNeeeewwwwLLLLiiiisssstttt and the corresponding call to ffffggggllllEEEEnnnnddddLLLLiiiisssstttt.
Instead, enable or disable before the call to ffffggggllllNNNNeeeewwwwLLLLiiiisssstttt.
On InfiniteReality systems it is particularly important to minimize the
amount of data transferred from the application to the graphics pipe,
since the host-to-pipe bandwidth limit can cause a performance
bottleneck. One way to reduce the amount of data transferred per vertex
is to use properly-aligned byte and short data types whenever possible.
Accordingly, the EEEEXXXXTTTT____vvvveeeerrrrtttteeeexxxx____aaaarrrrrrrraaaayyyy extension on InfiniteReality systems
has been optimized for vertex information packed into the following data
structures. (Note: v represents vertex coordinates, c represents color
components, n represents normal coordinates, and t represents texture